iT邦幫忙

2023 iThome 鐵人賽

DAY 4
0
Software Development

Zero to Ruby on Rails系列 第 4

Day 04 - String, Number, Array and Range 字串、數字、陣列&範圍

  • 分享至 

  • xImage
  •  

String 字串

字串就是把子母在一起,在 Ruby 字串又分為雙引號字串單引號字串本質上沒有差別,最主要的差別就是雙引號的字串可以處理字串安插,但單引號字串則不會處理。

x = "Twitter"
x = 'Twitter'

puts "Hi, I'm the king of pirates"     # 正常執⾏ 
puts 'Hi, I'm the king of pirates'     # 語法錯誤

# 使用反斜線 \ 告知Ruby ' 為一般的字而不是單引號
puts 'Hi, I\'m the king of pirates'    # 正常執⾏

字串的串接 String Interpolation

是一種將變數、表達式或方法的結果加入字串中的方法,以便在字串中動態地插入它們的值。這使得字串的建構更加靈活和方便,而不需要使用繁瑣的字串連接操作符。

name = "Luffy"
age = 19

# 將變數插入字串中
puts "Hello, my name is #{name} and I am #{age} years old."

# 印出:Hello, my name is Luffy and I am 19 years old.

# 用於表達
a = 5
b = 10

puts "The sum of #{a} and #{b} is #{a + b}."    # 印出:The sum of 5 and 10 is 15.

#帶入方法
def greet(name)
  "Hello, #{name}!"
end

puts greet("Luffy")     # 印出:Hello, Luffy!

在 Ruby 有提供另一種字串的表現方式,分別是 %Q 跟 %q ,各代表雙引號跟單引號,就不需要反斜線來處理多餘的引號:

name = "Luffy"
age = 19


# 效果等同雙引號
puts %Q(Hello, my name is #{name}, and I am #{age} years old.)

# 效果等同單引號
puts %q(Hello, my name is #{name}, and I am #{age} years old.)



# 不需要反斜線

puts %Q(I'm going to be king of the Pirates.) # 正常執⾏
puts %q(I'm going to be king of the Pirates.) # 正常執⾏

Number 數字

在 Ruby 的世界裡,幾乎什麼東⻄都是物件,即使是單純的數字,也是一個數字物件。

整數與浮點數

pi = 3.14

puts pi.round  # 轉成整數,四捨五入 
puts pi.floor  # 轉成整數,無條件捨去 
puts pi.ceil   # 轉成整數,無條件進位 
puts pi.to_i   # 轉成整數,無條件捨去

除法

在 Ruby 整數除以整數會得到整數,如果希望除到小數點只要除數或被除數代有小數點即可。

result = 10 / 3
puts result # 印出 3

result = 10 / 3.0
puts result # 印出 3.3333333

Array 陣列

Ruby 中的陣列是一個有序的數據集合,它可以包含各種數據類型,包括整數、浮點數、字串、符號等。

# 使用陣列:

pirates = ["魯夫", "索隆", "娜美", "騙人布"]

puts pirates.first    #印出 魯夫
puts pirates.last     #印出 騙人布
puts pirates.length   #印出 4

pirates << "香吉士"
puts pirates.last     #印出 香吉士

常用方法

map

對集合裡的每個元素進行運算,並收集成一個新的集合。

numbers = [1, 2, 3, 4, 5]
doubled_numbers = numbers.map { |num| num * 2 }

p doubled_numbers # 印出[2, 4, 6, 8, 10]

select

從集合裡挑選符合條件的元素,並收集成一個新的集合。

numbers = [1, 2, 3, 4, 5]
even_numbers = numbers.select { |num| num.even? }

p even_numbers  # 印出[2, 4]

reduce

對集合裡的每個元素進行運算,並將所有的運算結果歸納成一個單一結果。

numbers = [1, 2, 3, 4, 5]
sum = numbers.reduce(0) { |total, num| total + num }

p sum # sum 印出 15

Range 範圍

Ruby 中的範圍是一個表示數字範圍的數據結構。

puts (1..10).to_a       # 印出 1 ~ 10
puts (1...10).to_a      # 印出 1 ~ 9



range = 1..5
puts range.include?(3)  # 印出 true
puts range.include?(6)  # 印出 false

預告

Day 05 預計來介紹雜湊和符號,我們明天見!


上一篇
Day 03 - Variable and Constant 變數與常數
下一篇
Day 05 - Hash and Symbol 雜湊和符號
系列文
Zero to Ruby on Rails30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言